1. Field of the Invention
The present invention relates to a programmable logic circuit, and more particularly to a programmable logic circuit incorporated in a programmable logic device which employs a flip-flop circuit as a programmable circuit element.
2. Description of the Related Art
Conventionally, an LCA (logic cell array) is known as an LSI (large-scale integrated circuit) that enables the preparation of a desirable logic circuit. In the LCA, programmable fundamental circuits are arranged in a matrix pattern on a semiconductor chip, and programmable mutual wiring lines are connected between the fundamental circuits. Switching elements are provided between the respective mutual wiring lines. Data is written in each RAM cell on the semiconductor chip, externally of the semiconductor chip. With each switching element being controlled in accordance with that data, a desirable logic circuit pattern is programmed on the semiconductor chip. The fundamental circuits are formed at different positions from those of the RAM cells and are therefore independent of the RAM cells. The programming of the LSI by the RAM cells is merely to change the manner of connection of the wiring lines by means of the switching elements.
One general problem of a complicated logic device incorporating field-programmable devices (i.e., devices programmable by the user) is that a desirable logic circuit pattern cannot be easily mapped or programmed for each field-programmable device.
In general, a desirable logic circuit pattern is made by a combination of inverters, NAND circuits, NOR circuits, flip-flop circuits and other various logic elements. However, it is difficult to program such various logic circuit elements in a field-programmable device. Thus, a logic itself is subjected to equivalent logic conversion by using the fundamental circuit prepared for the field-programmable device, and mapping is performed with respect to the fundamental circuit of the device in accordance with the logic obtained by the conversion. At the time, the fundamental circuits have to be connected to each other by arranging the mutual wiring lines in accordance with logic connection data.
All of the procedures mentioned above cannot be manually performed in practice, and therefore have to be subjected to computer processing. Therefore, whether or not it is easy to develop the software program for that computer processing is a matter of importance. In other words, whether or not it is easy to perform mapping for each field-programmable device is a matter of importance.
Another general problem of the logic device is that the operation speed of the device is not very high. More specifically, since the wiring connection is programmable, one connection line of a logic circuit is formed by means of a plurality of metal lines and switching elements in an actual device. Due to the parasitic resistance of the switching circuit, the signal transmission on the connection line is inevitably delayed, lowering the operation speed of the entire device. Therefore, how to reduce the resistance of each connection line is also a matter of importance.
Further, from the viewpoint of cost, it is desirable that a device programmed to have an intended logic circuit be as simple as possible. In general, a programmable device incorporates many redundant circuit elements because of its programmability. Therefore, a logic circuit programmed by the programmable device is large in circuit scale, in comparison with the case where a logic circuit having the same function is attained by means of gate arrays and standard cells. If the logic circuit is large in circuit scale, a large-sized chip will be required for fabricating an LSI, resulting in a high manufacturing cost.